package com.gd.iot.energy.service.dailymanage;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gd.iot.energy.po.dailymanage.EquipmentInstructionTreePO;
import com.gd.iot.energy.pojo.common.vo.PageVO;
import com.gd.iot.energy.pojo.dailymanage.dto.EquipmentInstructionTreeSaveDTO;
import com.gd.iot.energy.pojo.dailymanage.vo.EquipmentInstructionTreePageVO;
import com.gd.iot.energy.pojo.dailymanage.vo.EquipmentInstructionTreeVO;
import com.gd.iot.energy.pojo.systemadmin.vo.EnumVO;

import java.util.List;
import java.util.Map;

public interface EquipmentInstructionTreeService extends IService<EquipmentInstructionTreePO> {
    /**
     * 获取列表
     * @param equipmentId
     * @param treeName
     * @return
     */
    List<EquipmentInstructionTreeVO> getEquipmentInstructionTreeVOs(Integer equipmentId, String treeName);

    /**
     * 获取分页数据
     * @param equipmentId
     * @param treeName
     * @param pageSize
     * @param pageNo
     * @param orderColumn
     * @param orderType
     * @return
     */
    PageVO<EquipmentInstructionTreePageVO> getEquipmentInstructionTreePageVOs(Integer equipmentId, String treeName, Integer pageSize,
                                                                              Integer pageNo, String orderColumn, String orderType);

    /**
     * 新增表计
     * @param instructionTreeSaveDTO
     * @return
     */
    Long add(EquipmentInstructionTreeSaveDTO instructionTreeSaveDTO);

    /**
     * 更新表计
     * @param instructionTreeSaveDTO
     * @return
     */
    boolean update(EquipmentInstructionTreeSaveDTO instructionTreeSaveDTO);

    /**
     * 删除表计
     * @param ids
     * @return
     */
    boolean delete(List<Integer> ids);

    /**
     * 根据id获取表计
     * @param id
     * @return
     */
    EquipmentInstructionTreeSaveDTO getEquipmentInstructionTree(Integer id);

    /**
     * 获取通信协议
     * @return
     */
    Map<String, List<EnumVO>> getEnums();
}
